Integrated contact card communication

ABSTRACT

Embodiments provide integrated reply functionality within the context of a contact card or panel. Contact information is provided for display in the contact card (e.g., a portion of a user interface of a computing device). The contact information is associated with a contact. The contact information identifies one or more transport modes for communication with the contact. In some embodiments, the computing device receives a request from a user to communicate with the contact via at least one selected transport mode. Based on the received request, the computing device provides an input field within the contact card. In other embodiments, the transport mode is automatically selected and the input field is displayed. Data from the user is received into the input field for communication to the contact. The computing device sends the data received into the input field to the contact via the selected transport mode. The integrated reply functionality is accessible from a conversation history displayed in the contact card.

BACKGROUND

Existing mobile computing devices allow users to communicate withcontacts via several modes of communication including voice calls, textmessaging, instant messaging, electronic mail, and the like. Thedifferent applications responsible for managing the differentcommunication modes maintain histories of the communication between theusers and the contacts including the date, time, and participants ineach communication. Some existing systems display the histories fromdifferent applications in a single user interface for the users. Suchexisting systems, however, are generally limited to displaying thehistories without providing additional functionality for subsequentinteraction with the contacts within the same user interface.

SUMMARY

Embodiments of the disclosure provide contact-centric integratedcommunication within a contact card of a user interface. Contactinformation is provided for display in a portion of a user interface ofa computing device. The contact information is associated with acontact. The contact information includes one or more transport modes.Based on the provided contact information, an input field is providedfor display within the portion of the user interface. Data from a userfor communication to the contact is received into the input field. Thedata received into the input field is sent by the computing device tothe contact via said at least one of the transport modes.

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used as an aid in determining the scope of the claimed subjectmatter.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an exemplary block diagram illustrating a computing devicestoring contact information and computer-executable components forproviding an input field within a contact panel.

FIG. 2 is an exemplary flow chart illustrating operation of thecomputing device to enable communication between a user and a contactvia an input field in a contact panel.

FIG. 3 is an exemplary diagram illustrating a contact panel displayingcontact information elements, a conversation history, and an inputfield.

FIG. 4 is an exemplary user interface illustrating an input field forcommunicating with a contact.

FIG. 5A through FIG. 5D are exemplary user interfaces illustrating ascrollable conversation history.

Corresponding reference characters indicate corresponding partsthroughout the drawings.

DETAILED DESCRIPTION

Referring to the figures, embodiments of the disclosure enable a user104 to initiate communication with a contact from within a contact cardor panel of a user interface 107. In some embodiments, the communicationis initiated via a conversation history 117 displayed within the contactpanel 304. The conversation history 117 spans a plurality ofcommunication or transport modes 114 or channels and represents aunified, aggregated set of communication items corresponding to arunning conversation between the user 104 and one or more of thecontacts. An input panel displayed with the conversation history 117enables the user 104 to communicate with contacts from within thecontext of the contact panel 304.

Aspects of the disclosure further allow the user 104 to directlyinteract with any communication item in the conversation history 117.For example, the user 104 may return a telephone call to a contact,listen to a voicemail from the contact, reply to an electronic mailmessage from the contact, send a text message to the contact, share aphoto with the contact, send a current location of the user 104 to thecontact, and the like, without leaving the context of the contact panel304 displaying the conversation history 117 with the contact.

Referring next to FIG. 1, an exemplary block diagram illustrates acomputing device 102 storing contact information 110 andcomputer-executable components for providing an input field 306 withinthe contact panel 304. In the example of FIG. 1, the computing device102 represents a system for integrated messaging within the contactpanel 304 of the user interface 107 of the computing device 102. One ormore users such as user 104 interact with the computing device 102. Thecomputing device 102 represents any device executing instructions (e.g.,as application programs, operating system functionality, or both) toimplement the operations and functionality associated with the computingdevice 102. The computing device 102 may include a mobile computingdevice or any other portable device. In some embodiments, the mobilecomputing device includes a mobile telephone, laptop, netbook, gamingdevice, and/or portable media player. The computing device 102 may alsoinclude less portable devices such as desktop personal computers,kiosks, and tabletop devices. Additionally, the computing device 102 mayrepresent a group of processing units or other computing devices.

The computing device 102 has at least one processor 106, a memory area108, and at least one user interface 107. The processor 106 includes anyquantity of processing units, and is programmed to executecomputer-executable instructions for implementing aspects of thedisclosure. The instructions may be performed by the processor 106 or bymultiple processors executing within the computing device 102, orperformed by a processor external to the computing device 102. In someembodiments, the processor 106 is programmed to execute instructionssuch as those illustrated in the figures (e.g., FIG. 2).

The computing device 102 further has one or more computer-readable mediasuch as the memory area 108. The memory area 108 includes any quantityof media associated with or accessible by the computing device 102. Thememory area 108 may be internal to the computing device 102 (as shown inFIG. 1), external to the computing device 102 (not shown), or both (notshown).

The memory area 108 stores, among other data, one or more applications(not shown). The applications, when executed by the processor 106,operate to perform functionality on the computing device 102. Exemplaryapplications include address book application programs, mail applicationprograms, web browsers, calendar application programs, messagingprograms, media applications, location-based services, search programs,and the like. The applications may communicate with counterpartapplications or services such as web services accessible via a networksuch as network 124. For example, the applications may representdownloaded client-side applications that correspond to server-sideservices executing in a cloud.

The memory area 108 further stores contact information 110 for one ormore contacts. For each contact, the contact information 110 includesone or more contact information elements 112 such as name, title,company, telephone number, electronic mail address, postal mail address,etc. In some embodiments, the contact information 110 is obtained from aremote data storage area such as provided by a cloud service 126. Theobtained contact information 110 is cached in the memory area 108, andupdates provided by the user 104 to the computing device 102 are sentback to the cloud service 126. In such embodiments, the computing device102 communicates with the cloud service 126 via the network 124.

The memory area 108 further identifies the transport modes 114 forcommunication with the contact. Exemplary transport modes 114 includetext messaging (e.g., such as the short message service), instantmessaging (IM), electronic mail, voice calls (e.g., incoming calls,outgoing calls, missed calls, and voicemail), video chats, socialnetworking website accounts, and the like. The voice mails may betraditional, telephone line calls and/or voice over Internet Protocol(VoIP) calls.

The memory area 108 further stores presence information 116 for eachcontact. Presence information 116 describes a status or activity of thecontact (e.g., away, offline, online, busy, in a call, in a chat, in ameeting, “do not disturb”, etc.). The memory area 108 further stores theconversation history 117. The conversation history 117 describes priorcommunication between the user 104 and one or more of the contacts. Insome embodiments, the conversation history 117 includes a set ofprevious communications including one or more of the following: textmessages, voice call information, electronic mail messages, and/orentries from social networking websites. The social networking websiteentries may include public postings or private postings directed to theuser 104 or a subset of users.

The transport modes 114, presence information 116, and conversationhistory 117 may be stored separate from the contact information 110(shown) or as part of the contact information (not shown). In furtherembodiments, the contact information elements 112 include or identifythe presence information 116, conversation history 117, and one or moreof the transport modes 114.

The memory area 108 further stores one or more computer-executablecomponents. Exemplary components include a contact panel component 118,a user interface component 120, and a communications interface component122. The operation of these components is described below with referenceto FIG. 2.

Referring next to FIG. 2, an exemplary flow chart illustrates operationof the computing device 102 to enable communication between the user 104and a contact via the input field 306 in the contact panel 304. At 202,contact information 110 is provided for display in the contact panel304. For example, the cloud service 126 may provide the contactinformation 110 for display to the user 104 by the computing device 102.In such an example, the cloud service 126 may collect contactinformation 110 from a plurality of contact information directories. Inanother example, the computing device 102 accesses the memory area 108to obtain and display the contact information 110 to the user 104. Thecontact information 110 is associated with one or more of the contacts.

In some embodiments, the contact panel 304 is defined to be a portion ofthe user interface 107. In other embodiments, the contact panel 304substantially occupies or consumes the user interface 107. For example,the contact panel 304 or other defined portion of the user interface 107represents a contact card or address book card or entry for a particularcontact.

The computing device 102 displays, in the contact panel 304, one or moreof the contact information elements 112 associated with the contactinformation 110 for the contact. The computing device 102 furtherdisplays at 204 presence information 116 and/or a conversation history117 associated with the contact. For example, an activity status of thecontact may be displayed along with a history of communication betweenthe contact and the user 104 organized chronologically. In someembodiments, the conversation history 117 further includes a set ofpostings from the contact that are not specific to the user 104. Forexample, the postings may be directed to a set of users or the generalpublic. The conversation history 117 may further identify the transportmode 114 associated with each communication item in the conversationhistory 117. For example, the conversation history 117 identifieswhether a communication occurred via telephone (e.g., and include thetelephone number), electronic mail (e.g., and include an electronic mailaddress), text message, instant message, or the like.

The computing device 102 defines the input field 306 or input panelwithin the contact panel 304 at 208. In some embodiments, the inputfield 306 is automatically displayed, and the transport mode orcommunication channel is automatically selected based on, for example,the presence status of the user 104, past interactions between the user104 and the contact, sensors on the computing device 102, or a defaultsetting. The input field 306 is designed to receive input from the user104 directly into the contact panel 304. In some embodiments, the type,shape, size, and visual effect of the input field 306 in the contactpanel 304 varies based on the transport mode 114 selected by the user104 or by the computing device 102. In an example in which the user 104communicates with the contact via electronic mail, the input field 306may take the form of a popup window, bubble, panel, or other userinterface element overlaying and/or displacing a portion of thedisplayed conversation history 117 (or other portion of the contactinformation 110 displayed in the contact panel 304). In an example inwhich the user 104 communicates with the contact via a text message, theinput field 306 may displace some of the contact information 110displayed in the contact panel 304. In an example in which the user 104communicates with the contact via a video chat, the input field 306 mayconsume a plurality of portions of the contact panel 304 with a frameshowing video of the contact and a frame showing video of the user 104.

Aspects of the disclosure contemplate the user 104 requesting tocommunicate with the contact in some embodiments. In such embodiments,the request may be received by the computing device 102 at 206. Forexample, the user 104 may select one of the items listed in theconversation history 117 by clicking, highlighting, or otherwiseselecting the item. At least because each communication item has atransport mode 114 associated therewith, the selection of acommunication item by the user 104 represents a request by the user 104to communicate with the contact via a particular transport mode 114. Inanother example, the user 104 clicks or selects a designated userinterface element to initiate communication with the contact (e.g., theuser interface element may be labeled “communicate with contact”). Insuch an example, the user 104 selects a particular transport mode 114(e.g., via a drop-down menu or popup list) after or while selecting thedesignated user interface element. The computing device 102 may presenta set of the available transport modes 114 to the user 104 byidentifying the transport modes 114 listed in the conversation history117 for the contact.

In some embodiments, the user 104 selects the transport mode 114 basedat least in part on the presence information 116 for the contact. Forexample, if the presence information 116 for the contact is “away,” theuser 104 may opt to send an electronic mail message to the contact. Ifthe presence information 116 indicates that the contact is online andavailable, the user 104 may place a voice call or send an instantmessage.

In some embodiments, the user 104 may select a plurality of thetransport modes 114 to communicate with the contact in multiple ways.For example, the user 104 requests to send a text message and anelectronic mail message to the contact when the user 104 has animmediate request but also wants to provide additional information lesssuited for consumption via a text message. In such an example, the samemessage is sent to the contact via the two different transport modes114.

If the request is received from the user 104 at 206, the computingdevice 102 defines the input field 306 or input panel within the contactpanel 304 at 208 based on the received request.

At 210, the computing device 102 receives data from the user 104 via theinput field 306 defined within the contact panel 304. The data isintended by the user 104 to be communicated to the contact. At 212, thecomputing device 102 sends the data received via the input field 306 tothe contact using the selected transport mode 114.

The input field 306 is defined and presented to the user 104 within thecontext of the displayed contact panel 304. The user 104 is not directedto execute another application or otherwise navigate away from thecontact panel 304 to communicate with the contact; rather, the user 104inputs the data to be communicated to the contact into the contact panel304 or a portion or extension thereof. Similarly, data received from thecontact by the computing device 102 is provided by the computing device102 for display in the contact panel 304.

One or more of the operations illustrated in FIG. 2 may be performed byan operating system and/or an address book application executing on thecomputing device 102. For example, the processor 106 may be programmedto execute the address book application to display the contactinformation 110, define or create the input field 306, receive the datafrom the user 104, and send the received data to the contact. Aspects ofthe disclosure enable the user 104 to interact with the address bookapplication to communicate with the contact without being directed toexecute an application separate from the address book application. Forexample, the user 104 does not leave the context of the address bookapplication to execute a separate text message application, electronicmail program, video chat application, or the like.

In some embodiments, the computer-executable components illustrated inFIG. 1 execute to perform the operations illustrated in FIG. 2. Forexample, the contact panel component 118, when executed by the processor106, causes the processor 106 to display the contact information 110 inthe contact panel 304. The displayed contact information 110 includesthe conversation history 117 and one or more of the transport modes 114associated with items in the conversation history 117. The conversationhistory 117 describes a plurality of interactions between the user 104and the contact via a plurality of the transport modes 114. In someembodiments, the contact panel component 118 displays the plurality ofinteractions sorted in chronological order.

The contact information 110 may be stored locally, or obtained from thecloud service 126 via the communications interface component 122.

The user interface component 120, when executed by the processor 106,causes the processor 106 to receive a request from the user 104 tocommunicate with the contact via at least one of the transport modes114. The transport mode 114 is selected by the user 104 based at leastin part on the conversation history 117 displayed in the contact panel304 of the user interface 107.

In some embodiments, the user interface component 120 includes agraphics card for displaying data to the user 104 and receiving datafrom the user 104. The user interface component 120 may also includecomputer-executable instructions (e.g., a driver) for operating thegraphics card. Further, the user interface component 120 may include adisplay (e.g., a touch screen display) and/or computer-executableinstructions (e.g., a driver) for operating the display. The userinterface component 120 may also include one or more of the following toprovide data to the user 104 or receive data from the user 104:speakers, a sound card, a camera, a microphone, a vibration motor, oneor more accelerometers, a BLUETOOTH brand communication module, globalpositioning system (GPS) hardware, and a photoreceptive light sensor.For example, the user 104 may input commands or manipulate data bymoving the computing device 102 in a particular way. The user interfacecomponent 120 may also receive data from the user 104 via one or moreexternal devices such as an external keyboard or from another computingdevice.

Based on the request received by the user interface component 120, thecontact panel component 118 provides the input field 306 or panel withinthe displayed contact panel 304. The user interface component 120receives, into the input panel, data from the user 104 for communicationto the contact. The communications interface component 122, whenexecuted by the processor 106, causes the processor 106 to send the datareceived into the input field 306 to the contact via the transport mode114. In some embodiments, the communications interface component 122includes a network interface card and/or computer-executableinstructions (e.g., a driver) for operating the network interface card.

Referring next to FIG. 3, an exemplary diagram illustrates a contactpanel 304 displaying contact information elements 112, the conversationhistory 117, and the input field 306. Upon selection of a contact by theuser 104, the contact panel 304 is populated with contact information110 associated with the selected contact. When the user 104 selectsanother contact, the contact panel 304 may be re-populated with contactinformation 110 associated with the newly selected contact.Alternatively, another tab may be created in the user interface 107 tocontain another contact panel 304 for displaying the contact information110 associated with the newly selected contact.

In the example of FIG. 3, the contact panel 304 is shown to consume asubstantial portion of the user interface 107. Aspects of thedisclosure, however, contemplate that the contact panel 304 may consumeany size portion of the user interface 107 or multiple portions. Thecontact panel 304 represents, for example, a contact card displayingcontact information elements 112 associated with a particular contact.The contact panel 304 further displays the conversation history 117including transport modes 114 associated with each of the communicationitems constituting the conversation history 117.

The contact panel 304 further displays the input field 306. The inputfield 306 may be displayed whenever the contact panel 304 is displayed,or may be displayed when a request to communicate with the contact isreceived from the user 104.

While the conversation history 117 is displayed within the contact panel304 in FIG. 3, the conversation history 117 may be shown adjacent to, orotherwise near, the contact panel 304 in other embodiments (not shown).

Further, in some embodiments, the input field 306 is positioned withinthe conversation history 117 such that communication with the contactseamlessly becomes part of the history built between the user 104 andthe contact.

Referring next to FIG. 4, an exemplary user interface 402 illustrates aninput field 406 for communicating with a contact. In the example of FIG.4, a portion 404 of the conversation history 117 between the user 104and a contact, Miles Reid, is displayed in the user interface 402. Inaddition, presence information 116 (e.g., “online”) associated with thecontact is displayed. The user 104 has opted to communicate with thecontact, and the input field 406 appears within the context of theconversation history 117. The user 104 begins entering data into theinput field 406 for transmission to the contact. The entered data issubsequently sent to the contact.

Referring next to FIG. 5A through FIG. 5D, exemplary user interfacesillustrate portions of a scrollable conversation history. Thecommunication items displayed as part of the conversation history areorganized, in this example, in chronological order starting with theoldest item first. In the examples of FIG. 5A through FIG. 5D, theconversation history includes the communication items received from theuser 104 via input fields and sent to the contact. Aspects of thedisclosure contemplate, however, that the conversation history mayinclude content from any interface or any other device used tocommunicate with the contact.

An exemplary conversation history such as in FIG. 5A through FIG. 5Dillustrates how communication by the user 104 with a particular contactmay seamlessly flow from one transport mode 114 or communication channelto another without interrupting the conversation. In an example (notshown), a conversation begun via instant messaging (e.g., while thecontact was sitting at a computer) continues via text messaging when thecontact transitions to using a mobile telephone but is sitting on acrowded bus. The conversation may conclude with a telephone call afterthe contact exits the bus. Each of the communication items described inthis scenario are stored and displayed as part of the conversationhistory.

In FIG. 5A, a user interface 502 displays a portion of the conversationhistory including telephone items, email items and social networkingitems (e.g., items posted or sent using one or more social networkingwebsites). The user 104 opted to communicate with the contact, MilesReid, via a social networking account, and an input field (not shown)appeared within the context of the displayed conversation history. Theuser 104 entered data into the input field for transmission to thecontact via the social networking account. The conversation historyindicates that the entered data was subsequently sent to the contact(e.g., based on the time stamp associated therewith) as shown in frame504.

In FIG. 5B, the user interface 502 displays a portion of theconversation history including email items, telephone items, and textmessaging items. The user 104 opted to communicate with the contact viatext messaging, and an input field (not shown) appeared within thecontext of the displayed conversation history. The user 104 entered datainto the input field for transmission to the contact via text messaging.The conversation history indicates that the entered data wassubsequently sent to the contact (e.g., based on the time stampassociated therewith) as shown in frame 506.

In FIG. 5C, the user interface 502 displays a portion of theconversation history including text messaging items and telephone items.The user 104 opted to communicate with the contact via text messaging,and input fields (not shown) appeared within the context of thedisplayed conversation history. The user 104 entered data into the inputfields for transmission to the contact via text messaging. Theconversation history indicates that the entered data was subsequentlysent to the contact (e.g., based on the timestamps associated therewith)as shown in frames 508, 510.

In FIG. 5D, the user interface 502 displays a portion of theconversation history including instant messaging items. The user 104opted to communicate with the contact via instant messaging. Forexample, the user 104 may have noticed that the presence information 116in FIG. 5A indicates that the contact is online. Input fields (notshown) appeared within the context of the displayed conversationhistory. The user 104 entered data into the input fields fortransmission to the contact via instant messaging. The conversationhistory indicates that the entered data was subsequently sent to thecontact (e.g., based on the timestamps associated therewith) as shown inframes 512 and 514.

The user 104 may interact with the conversation history illustrated inFIG. 5A through FIG. 5D. For example, the user 104 may collapse portionsof the conversation history into sessions, time periods, subjects,transport modes 114 (e.g., specific communication channels), or othercriteria. Collapsing portions of the conversation history enables theuser 104 to find and consume particular communication items. Further, insome embodiments, the user 104 is able to search the conversationhistory via text queries, voice queries, or other search means.Similarly, the user 104 may filter the conversation history to hideparticular communication items (e.g., by contact name, if theconversation involves multiple contacts) or group communication itemswithin the conversation history.

The user 104 may also sort or otherwise organize the conversationhistory based on criteria other than time stamps. For example, the user104 may group the communication items by transport mode 114.

FIG. 5D also shows an input field 516 within the conversation historyavailable for input by the user 104.

Additional Examples

In some embodiments, a portion of the conversation history 117 may bedisplayed external to the contact panel 304. For example, some of thecommunication items in the conversation history 117 may be copied to ahome screen or desktop of the user's mobile computing device. In otherexamples, notifications may be surfaced in a tile, toast, popup, orother user interface element. Notifications may also be displayed withinthe contact list or provided to other computing devices or accessorydevices associated the mobile computing device. In some embodiments, thenotifications identify the contact involved in the notification andprovide details of the contact such as information from a socialnetworking website. The notifications or other communication itemsprovide proactive notification of updates to the conversation history117.

The notifications may be prioritized for display to the user 104. Forexample, communication notifications (e.g., relating to missed calls,emails, text messages, instant messages, and the like) may takeprecedence over social update notifications (e.g., relating tophotographs, stories, status messages, and the like from socialnetworking web sites). The prioritizing affects which notifications aredisplayed to the user 104 in the tiles, popups, or other locations onthe computing device 102.

Alternatively or in addition, multiple notifications may be consolidatedinto a single item on a shared tile or other user interface elementbased on a category or group associated with the notifications. Forexample, “5 new items” from contacts in a “family” group may bedisplayed on a tile, rather than a list of each of the five new items.Aspects of the disclosure contemplate operations to intelligently selectwhich notifications to display on which tiles (e.g., shared tiles). Forexample, the operations execute to decide which items to promote basedon a set of contacts frequently contacted by the user 104, a set offavorite contacts, and/or contacts associated with a particular group.In another example, adaptive heuristic operations analyze relationshipdata such as employer/employee and/or manager/report, relationship dataidentified from social networking web sites, or previous user behaviorto decide which notifications to surface in a shared context. Exemplaryuser behavior includes tracking which emails are viewed first by theuser 104, time spent viewing each email, which emails are saved, whichtransports are preferred, and the like.

Aspects of the disclosure may further notify the user 104 usingnon-visual means including sound and touch (e.g., vibration). Forexample, one or more contacts may be assigned a particular ringtone orvibration pattern to alert the user 104 of a received communication iteminvolving the contact.

The input field 306 may be provided in numerous locations in the contactpanel 304. In some embodiments, the input field 306 is available fordisplay near the latest communication item displayed in the conversationhistory 117. In other embodiments, the input field 306 is available fordisplay near the latest communication item for each particular type(e.g., the most recent electronic mail message, the most recent textmessage, etc.). For example, the input field 306 may be inline with thelatest communication item. In still other embodiments, the input field306 is available for display near any of the communication itemsdisplayed in the conversation history 117.

In embodiments in which the conversation history 117 includescommunication items relating to VoIP calls, aspects of the disclosurecontemplate the computing device 102 or the cloud service 126 receivingthe communication items from a third-party application providing theVoIP functionality. For example, a third-party VoIP applicationinstalled on the computing device 102 publishes the call historiesbetween users 104 and contacts to the computing device 102 (e.g., theoperating system or an address book application) and/or the cloudservice 126. The computing device 102 (or the cloud service 126) thenincorporates the published call histories into the conversation history117 for the corresponding users 104 and contacts.

At least a portion of the functionality of the various elements in FIG.1 may be performed by other elements in FIG. 1, or an entity (e.g.,processor, web service, server, application program, computing device,etc.) not shown in FIG. 1.

In some embodiments, the operations illustrated in FIG. 2 may beimplemented as software instructions encoded on a computer-readablemedium, in hardware programmed or designed to perform the operations, orboth. For example, aspects of the disclosure may be implemented as asystem on a chip.

While no personally identifiable information is tracked by aspects ofthe disclosure, embodiments have been described with reference to datamonitored and/or collected from users 104. In such embodiments, noticeis provided to the users 104 of the collection of the data (e.g., via adialog box or preference setting) and users 104 are given theopportunity to give or deny consent for the monitoring and/orcollection. The consent may take the form of opt-in consent or opt-outconsent.

Exemplary Operating Environment

Exemplary computer readable media include flash memory drives, digitalversatile discs (DVDs), compact discs (CDs), floppy disks, and tapecassettes. By way of example and not limitation, computer readable mediacomprise computer storage media and communication media. Computerstorage media store information such as computer readable instructions,data structures, program modules or other data. Computer readablestorage media exclude propagated data signals. Communication mediatypically embody computer readable instructions, data structures,program modules, or other data in a modulated data signal such as acarrier wave or other transport mechanism and include any informationdelivery media.

Although described in connection with an exemplary computing systemenvironment, embodiments of the invention are operational with numerousother general purpose or special purpose computing system environmentsor configurations. Examples of well known computing systems,environments, and/or configurations that may be suitable for use withaspects of the invention include, but are not limited to, mobilecomputing devices, personal computers, server computers, hand-held orlaptop devices, multiprocessor systems, gaming consoles,microprocessor-based systems, set top boxes, programmable consumerelectronics, mobile telephones, network PCs, minicomputers, mainframecomputers, distributed computing environments that include any of theabove systems or devices, and the like.

Embodiments of the invention may be described in the general context ofcomputer-executable instructions, such as program modules, executed byone or more computers or other devices. The computer-executableinstructions may be organized into one or more computer-executablecomponents or modules. Generally, program modules include, but are notlimited to, routines, programs, objects, components, and data structuresthat perform particular tasks or implement particular abstract datatypes. Aspects of the invention may be implemented with any number andorganization of such components or modules. For example, aspects of theinvention are not limited to the specific computer-executableinstructions or the specific components or modules illustrated in thefigures and described herein. Other embodiments of the invention mayinclude different computer-executable instructions or components havingmore or less functionality than illustrated and described herein.

Aspects of the invention transform a general-purpose computer into aspecial-purpose computing device when configured to execute theinstructions described herein.

The embodiments illustrated and described herein as well as embodimentsnot specifically described herein but within the scope of aspects of theinvention constitute exemplary means for providing integrated replyfunctionality within the portion of the user interface 107 displayingthe contact information elements 112, and exemplary means for providingthe input field 306 within the portion of the user interface 107displaying the contact information elements 112 to enable the user 104to initiate communication with the contact from therewithin.

The order of execution or performance of the operations in embodimentsof the invention illustrated and described herein is not essential,unless otherwise specified. That is, the operations may be performed inany order, unless otherwise specified, and embodiments of the inventionmay include additional or fewer operations than those disclosed herein.For example, it is contemplated that executing or performing aparticular operation before, contemporaneously with, or after anotheroperation is within the scope of aspects of the invention.

When introducing elements of aspects of the invention or the embodimentsthereof, the articles “a,” “an,” “the,” and “said” are intended to meanthat there are one or more of the elements. The terms “comprising,”“including,” and “having” are intended to be inclusive and mean thatthere may be additional elements other than the listed elements.

Having described aspects of the invention in detail, it will be apparentthat modifications and variations are possible without departing fromthe scope of aspects of the invention as defined in the appended claims.As various changes could be made in the above constructions, products,and methods without departing from the scope of aspects of theinvention, it is intended that all matter contained in the abovedescription and shown in the accompanying drawings shall be interpretedas illustrative and not in a limiting sense.

1. A system for integrated messaging within a contact card of a userinterface, said system comprising: a memory area associated with amobile computing device, said memory area storing contact informationelements associated with a contact, said contact information elementsidentifying one or more transport modes for communication with thecontact, said memory area further storing presence informationassociated with the contact; and a processor programmed to: define atleast a portion of a user interface of the mobile computing device todisplay the contact information elements stored in the memory area, saiddefined portion of the user interface representing a contact card;display, in the defined portion of the user interface, one or more ofthe contact information elements stored in the memory area; display, inthe user interface, the presence information stored in the memory area;receive a request from a user of the mobile computing device tocommunicate with the contact via at least one of the transport modes,said at least one of the transport modes being selected by the userbased at least in part on the presence information displayed in the userinterface; based on the received request, create an input field withinthe defined portion of the user interface; receive, into the createdinput field, data from the user to communicate to the contact; and sendthe data received into the input field to the contact via said at leastone of the transport modes.
 2. The system of claim 1, wherein theprocessor is programmed to create the input field by creating a type ofinput field based on the transport mode selected by the user.
 3. Thesystem of claim 1, wherein the processor is programmed to execute anaddress book application to display the contact information elements,create the input field, receive the data from the user, and send thedata to the contact.
 4. The system of claim 3, wherein the processor isprogrammed to display the contact information elements, create the inputfield, receive the data from the user, and send the data to the contactwithout executing an application separate from the address bookapplication.
 5. The system of claim 1, further comprising means forproviding integrated reply functionality within the portion of the userinterface displaying the contact information elements.
 6. The system ofclaim 1, further comprising means for providing the input field withinthe portion of the user interface displaying the contact informationelements to enable the user to initiate communication with the contactfrom therewithin.
 7. A method comprising: providing contact informationfor display in a portion of a user interface of a computing device, saidcontact information being associated with a contact, said contactinformation including one or more transport modes; based on the providedcontact information, providing an input field for display within theportion of the user interface; receiving, into the input field, datafrom a user for communication to the contact; and sending, by thecomputing device, the data received into the input field to the contactvia at least one of the transport modes.
 8. The method of claim 7,further comprising: receiving data from the contact; and providing thereceived data for display to the user in the portion of the userinterface.
 9. The method of claim 7, wherein providing the contactinformation comprises providing contact information collected from aplurality of contact information directories.
 10. The method of claim 7,further comprising selecting said at least one of the transport modesbased on one or more of the following: a presence status of the user,previous interactions between the user and the contact, and sensors inthe computing device.
 11. The method of claim 7, wherein providing thecontact information for display in the portion of the user interfacecomprises providing the contact information for display in one or moreof the following user interface elements: a frame, a panel, a bubble,and a popup.
 12. The method of claim 7, wherein the computing deviceexecutes an address book application to provide the input field, receivethe data into the input field, and send the data to the contact.
 13. Themethod of claim 12, wherein the computing device provides the inputfield, receives the data into the input field, and sends the data to thecontact without executing an application separate from the address bookapplication.
 14. The method of claim 7, wherein the contact informationdisplayed in the portion of the user interface represents an addressbook card for the contact, and wherein the computing device provides theinput field, receives the data into the input field, and sends the datato the contact within the context of the address book card for thecontact.
 15. The method of claim 7, further comprising providing aconversation history for display in a portion of a user interface of acomputing device, said conversation history corresponding to a set ofprevious communications between the user and the contact.
 16. The methodof claim 15, wherein the computing device comprises a mobile computingdevice, and further comprising displaying one or more communicationsfrom the set of communications on a home screen of the mobile computingdevice.
 17. One or more computer-readable storage media embodyingcomputer-executable components, said components comprising: a contactpanel component that when executed causes at least one processor todisplay contact information in a contact panel of a user interface of acomputing device, said contact information being associated with acontact, said contact information including a conversation history andone or more transport modes; a user interface component that whenexecuted causes at least one processor to receive a request from a userto communicate with the contact via at least one of the transport modes,said at least one of the transport modes being selected by the userbased at least in part on the conversation history displayed in thecontact panel of the user interface, wherein the contact panel componentprovides, based on the received request, an input panel within thedisplayed contact panel, wherein the user interface component receives,into the input panel provided by the contact panel component, data fromthe user for communication to the contact; and a communicationsinterface component that when executed causes at least one processor tosend the data received into the input panel to the contact via said atleast one of the transport modes.
 18. The computer-readable media ofclaim 17, wherein the conversation history describes a plurality ofinteractions between the user and the contact via a plurality of thetransport modes.
 19. The computer-readable media of claim 18, whereinthe contact panel component displays the plurality of interactionssorted in chronological order.
 20. The computer-readable media of claim17, wherein the communications interface component obtains at least aportion of the conversation history from a cloud service.